//package work.rightAnswer;
//
//class Solution_1143 {
//    public int longestCommonSubsequence(String text1, String text2) {
//        char[] chars1 = text1.toCharArray();
//        char[] chars2 = text2.toCharArray();
//
//        int[][] dp = new int[chars1.length][chars2.length];
//        if(chars1[0]==chars2[0]){
//            dp[0][0] = 1;
//        }
//        for (int i = 1; i < chars2.length; i++) {
//            if(chars1[0]==chars2[i]||dp[0][i-1]==1){
//                dp[0][i] = 1;
//            }
//        }
//
//        for (int i = 0; i < chars1.length; i++) {
//            if(chars1[i]==chars2[0]||dp[i-1][0]==1){
//                dp[i][0] = 1;
//            }
//        }
//
//        for (int i = 1; i < chars1.length; i++) {
//            for (int j = 1; j < chars2.length; j++) {
//                if(chars1[i]==chars2[j]){
//                    dp[i][j] = dp[i-1][j-1]+1;
//                }else {
//                    dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);
//                }
//            }
//        }
//
//        return dp[chars1.length-1][chars2.length-1];
//    }
//
//
//    //0到index1 0到index2 子序列的最大公共长度
//    public int plcChild(char[] chars1,char[] chars2,int index1,int index2){
//        if(index1==0&&index2==0){
//            return chars1[index1]==chars2[index2]?1:0;
//        }
//        if(index1==0){
//            return chars1[index1]==chars2[index2]||plcChild(chars1,chars2,index1,index2-1)==1?1:0;
//        }
//        if(index2==0){
//            return chars1[index1]==chars2[index2]||plcChild(chars1,chars2,index1-1,index2)==1?1:0;
//        }
//
//        if(chars1[index1]==chars2[index2]){
//            return plcChild(chars1,chars2,index1-1,index2-1)+1;
//        }else {
//            return Math.max(plcChild(chars1,chars2,index1-1,index2),plcChild(chars1,chars2,index1,index2-1));
//        }
//
//    }
//}